home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / MOS / USERBREA.D < prev    next >
Encoding:
Modula Definition  |  1990-12-09  |  2.1 KB  |  61 lines

  1. DEFINITION MODULE UserBreak;
  2.  
  3. (*
  4.    Dies Modul dient dazu, Programme durch Drücken von Ctrl-C oder
  5.    Ctrl-Enter abzubrechen.
  6.    
  7.    Zur Aktivierung dieser Option muß die exportierte Prozedur
  8.    'EnableBreak', zur Deaktivierung 'DisableBreak' aufgerufen
  9.    werden. 'EnableBreak' liefert TRUE, wenn die Aktivierung wie
  10.    gewünscht erfolgte.
  11.    
  12.    Ctrl-C wird erst erkannt, wenn AES-Events (Keyboard, Button
  13.    oder Timer) abgefragt werden, also z.B. bei Benutung der
  14.    Funktionen aus Textwindows oder einem MultiEvent-Aufruf.
  15.    Dann erscheint wie bei einem Laufzeitfehler eine Meldung
  16.    und das Programm kann abgebrochen oder fortgeführt werden.
  17.    
  18.    Ctrl-Enter ist gegenüber Ctrl-C mit Vorsicht zu benutzen.
  19.    Diese Funktion reagiert sofort. Dies kann u.U. dazu führen,
  20.    daß sich das System danach fehlerhaft verhält.
  21.    Dies passiert dann, wenn Ctrl-Enter zu einem Zeitpunkt
  22.    gedrückt wird, in dem Betriebssystemfunktionen ausgeführt
  23.    werden. Deshalb sollte zuerst immer Ctrl-C probiert werden
  24.    und nur, wenn es unbedingt notwendig ist, Ctrl-Enter verwendet
  25.    werden.
  26.    
  27.    Sollte sich das Programm allerdings in einer Endlosschleife
  28.    befinden, die nur aus Modula-Funktionen besteht, oder das
  29.    Programm gerade eine zeitaufwendige Berechnung durchführen,
  30.    kann in der Regel Ctrl-Enter ohne Gefahr benutzt werden.
  31.    
  32.    Übrigens ist das Modul ausschließlich in MODULA programmiert.
  33. *)
  34.  
  35.  
  36. PROCEDURE EnableBreak () :BOOLEAN;
  37.    (*
  38.     *  Nach Aufruf dieser Routine ist es möglich, das laufende
  39.     *  Programm zu unterbrechen.
  40.     *)
  41.  
  42. PROCEDURE DisableBreak;
  43.    (*
  44.     *  Hiernach kann das Programm nicht mehr mit Ctrl-C bzw.
  45.     *  Ctrl-Enter abgebrochen werden. Dies ist auch der
  46.     *  Anfangszustand.
  47.     *)
  48.  
  49. VAR Break: BOOLEAN;
  50.    (*
  51.     * Wird TRUE, sobald Ctrl-C gedrückt wurde.
  52.     *
  53.     * Sobald daraufhin ein Event-Aufruf (z.B. EventMulti) oder eine
  54.     * Ausgabe über TextWindows erfolgt, wird das Programm automatisch
  55.     * terminiert.
  56.     * Programme können diese Variable auch selbst abfragen und dann ggf.
  57.     * zurück auf FALSE setzen.
  58.     *)
  59.  
  60. END UserBreak.
  61.